home *** CD-ROM | disk | FTP | other *** search
/ Aminet 1 (Walnut Creek) / Aminet - June 1993 [Walnut Creek].iso / aminet / dev / lang / sbp3_1e.lzh / PARSER1.PL < prev    next >
Text File  |  1991-10-31  |  804b  |  36 lines

  1. /* From the book PROLOG PROGRAMMING IN DEPTH
  2.    by Michael A. Covington, Donald Nute, and Andre Vellino.
  3.    Copyright 1988 Scott, Foresman & Co.
  4.    Non-commercial distribution of this file is permitted. */
  5.  
  6. /* PARSER1.PL */
  7.  
  8. /* Simple technique for determining
  9.    whether a list of atoms is
  10.    generated by a context-free grammar. */
  11.  
  12. sentence(X,Z) :- noun_phrase(X,Y),
  13.                  verb_phrase(Y,Z).
  14.  
  15. noun_phrase(X,Z) :- determiner(X,Y),
  16.                     noun(Y,Z).
  17.  
  18. verb_phrase(X,Z) :- verb(X,Y),
  19.                     noun_phrase(Y,Z).
  20.  
  21. verb_phrase(X,Z) :- verb(X,Y),
  22.                     sentence(Y,Z).
  23.  
  24. determiner([the|Z],Z).
  25. determiner([a|Z],Z).
  26.  
  27. noun([dog|Z],Z).
  28. noun([cat|Z],Z).
  29. noun([boy|Z],Z).
  30. noun([girl|Z],Z).
  31.  
  32. verb([chased|Z],Z).
  33. verb([saw|Z],Z).
  34. verb([said|Z],Z).
  35. verb([believed|Z],Z).
  36.